﻿
using Xacml.Core.Runtime;

namespace Xacml.Core.Interfaces
{
  public interface IFunction : IFunctionParameter
  {
    string Id { get; }

    IDataType Returns { get; }

    IDataType[] Arguments { get; }

    bool VarArgs { get; }

    EvaluationValue Evaluate(EvaluationContext context, params IFunctionParameter[] args);
  }
}
